feat(outbox): produce outbox proofs#808
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #808 +/- ##
==========================================
+ Coverage 91.08% 91.12% +0.03%
==========================================
Files 111 111
Lines 20964 21285 +321
Branches 20964 21285 +321
==========================================
+ Hits 19096 19396 +300
- Misses 1491 1510 +19
- Partials 377 379 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
76fdfcc to
0886566
Compare
|
Benchmark results for revision 447c8e4:
Full results
Compare the results above with those for the default branch. |
There seems to be a performance drop, perhaps? |
0886566 to
ca6fd05
Compare
ec9b624 to
fd14151
Compare
592faa4 to
01886c1
Compare
thomasathorne
left a comment
There was a problem hiding this comment.
Generally looks great!
Have a few questions about the different error cases and how they are currently tested (or not tested). I may have misunderstood something as some of the errors output in the tests aren't what I expected! 😅 At any rate, the different cases could be clarified a bit.
fec1f02 to
ec13689
Compare
This PR now also contains a small PVM state restructuring which @emturner discovered offsets the slight dip in performance. |
36a0127 to
e6be7b8
Compare
I've added tests for these cases here.
I'd rather not overcomplicate this error type. As for clarity of the code, I think each instance of raising |
6f3a7c0 to
024a3f9
Compare
024a3f9 to
5f8cef3
Compare
5f8cef3 to
183497e
Compare
183497e to
5e06f46
Compare
5e06f46 to
87cdf7a
Compare
87cdf7a to
f0c9b7b
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #808 +/- ##
==========================================
+ Coverage 91.08% 91.12% +0.03%
==========================================
Files 111 111
Lines 20964 21285 +321
Branches 20964 21285 +321
==========================================
+ Hits 19096 19396 +300
- Misses 1491 1510 +19
- Partials 377 379 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Closes RV-872. Closes RV-877.
What
The outbox can now produce a proof for an outbox message. A proof contains the message metadata and a Merkle proof which ties the inclusion of the given message in the outbox with a particular state hash.
Why
The outbox needs to support inclusion proofs for messages.
How
The
OutboxProoftype is introduced, along withOutputandOutputInfo, which model Tezos protocol types.Outbox proofs employ the same proof production mechanism used for fraud proofs. The difference is that the proven state transition is not one step of the PVM but a successful read of the given message from the outbox. The outbox is thus also expanded with the ability to read a single message.
Manually Testing
In particular, the
test_outbox_proofs_dummy_kerneltest.Regressions
A regression for an outbox proof for the first message of the last level of the dummy kernel is checked in.
Tasks for the Author